Extension point directories
In component org.nuxeo.ecm.directory.GenericDirectory
Documentation
Registration of generic directories. Generic directories are usable only as extensions to other directories which have been defined as templates.
First, register a template directory:
<extension point="directories" target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory">
<directory name="template-dir" template="true">
<dataSource>java:/nxsqldirectory</dataSource>
<createTablePolicy>always</createTablePolicy>
<querySizeLimit>100</querySizeLimit>
</directory>
</extension>
Then use a generic directory to provide specific customizations:
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
<directory extends="template-dir" name="my-directory">
<schema>myschema</schema>
<table>mytable</table>
<idField>id</idField>
<passwordField>password</passwordField>
<passwordHashAlgorithm>SSHA</passwordHashAlgorithm>
<substringMatchType>subany</substringMatchType>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<!-- <dataFile>my-directory.csv</dataFile> -->
</directory>
</extension>
Contribution Descriptors
- Class: org.nuxeo.ecm.directory.BaseDirectoryDescriptor
Existing Contributions
Contributions are presented in the same order as the registration order on this extension point. This order is displayed before the contribution name, in brackets.
-
<?xml version='1.0' encoding='UTF-8'?> <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="digestauth"> <schema>digestauth</schema> <idField>username</idField> <passwordField>password</passwordField> <types> <type>system</type> </types> </directory> </extension>
-
<?xml version='1.0' encoding='UTF-8'?> <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-user" name="userDirectory"> <schema>user</schema> <types> <type>system</type> </types> <idField>username</idField> <passwordField>password</passwordField> <passwordHashAlgorithm>SSHA</passwordHashAlgorithm> <autoincrementIdField>false</autoincrementIdField> <dataFile>users.csv</dataFile> <createTablePolicy>on_missing_columns</createTablePolicy> <querySizeLimit>50</querySizeLimit> <!-- comment <cache* /> tags to disable the cache --> <cacheEntryName>user-entry-cache</cacheEntryName> <cacheEntryWithoutReferencesName>user-entry-cache-without-references</cacheEntryWithoutReferencesName> <references> <inverseReference directory="groupDirectory" dualReferenceField="members" field="groups"/> </references> </directory> <directory extends="template-group" name="groupDirectory"> <schema>group</schema> <types> <type>system</type> </types> <idField>groupname</idField> <dataFile>groups.csv</dataFile> <createTablePolicy>on_missing_columns</createTablePolicy> <autoincrementIdField>false</autoincrementIdField> <!-- comment <cache* /> tags to disable the cache --> <cacheEntryName>group-entry-cache</cacheEntryName> <cacheEntryWithoutReferencesName>group-entry-cache-without-references</cacheEntryWithoutReferencesName> <references> <reference dataFile="user2group.csv" directory="userDirectory" field="members" name="user2group" source="groupId" target="userId"/> <!-- Warning ! From Nuxeo 5.3.1, a wrong setting has been fixed. See http://jira.nuxeo.org/browse/NXP-4401 . Nuxeo upgrades would need a fix in the database (inverting parentGroupId and childGroupId in the group2group) --> <reference directory="groupDirectory" field="subGroups" name="group2group" source="parentGroupId" target="childGroupId"/> <inverseReference directory="groupDirectory" dualReferenceField="subGroups" field="parentGroups"/> </references> </directory> <directory extends="template-directory" name="digestauth"> <schema>digestauth</schema> <idField>username</idField> <passwordField>password</passwordField> <types> <type>system</type> </types> <cacheEntryName>digestauth-entry-cache</cacheEntryName> <cacheEntryWithoutReferencesName>digestauth-entry-cache-without-references</cacheEntryWithoutReferencesName> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="aceinfo"> <schema>aceinfo</schema> <idField>id</idField> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>__Nobody__</group> </permission> </permissions> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-vocabulary" name="eventTypes"> <dataFile>directories/event-types.csv</dataFile> <types> <type>system</type> </types> </directory> <directory extends="template-vocabulary" name="eventCategories"> <dataFile>directories/event-categories.csv</dataFile> <types> <type>system</type> </types> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="template-vocabulary" template="true"> <schema>vocabulary</schema> <idField>id</idField> </directory> <directory extends="template-directory" name="template-xvocabulary" template="true"> <schema>xvocabulary</schema> <idField>id</idField> </directory> <directory extends="template-directory" name="template-l10nxvocabulary" template="true"> <schema>l10nxvocabulary</schema> <idField>id</idField> </directory> <directory extends="template-directory" name="template-documentsLists" template="true"> <schema>documentsLists</schema> <idField>id</idField> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-xvocabulary" name="country"> <parentDirectory>continent</parentDirectory> <dataFile>directories/country.csv</dataFile> </directory> <directory extends="template-vocabulary" name="continent"> <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint"> <property name="targetDirectory">country</property> <property name="targetDirectoryField">parent</property> </deleteConstraint> <dataFile>directories/continent.csv</dataFile> </directory> <directory extends="template-l10nxvocabulary" name="l10ncoverage"> <parentDirectory>l10ncoverage</parentDirectory> <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint"> <property name="targetDirectory">l10ncoverage</property> <property name="targetDirectoryField">parent</property> </deleteConstraint> <dataFile>directories/l10ncoverage.csv</dataFile> </directory> <directory extends="template-xvocabulary" name="subtopic"> <parentDirectory>topic</parentDirectory> <dataFile>directories/subtopic.csv</dataFile> </directory> <directory extends="template-vocabulary" name="topic"> <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint"> <property name="targetDirectory">subtopic</property> <property name="targetDirectoryField">parent</property> </deleteConstraint> <dataFile>directories/topic.csv</dataFile> </directory> <directory extends="template-l10nxvocabulary" name="l10nsubjects"> <parentDirectory>l10nsubjects</parentDirectory> <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint"> <property name="targetDirectory">l10nsubjects</property> <property name="targetDirectoryField">parent</property> </deleteConstraint> <dataFile>directories/l10nsubjects.csv</dataFile> </directory> <directory extends="template-vocabulary" name="subject"> <types> <type>system</type> </types> <dataFile>directories/subject.csv</dataFile> </directory> <directory extends="template-vocabulary" name="search_operators"> <types> <type>system</type> </types> <dataFile>directories/search_operators.csv</dataFile> </directory> <directory extends="template-documentsLists" name="documentsLists"> <types> <type>system</type> </types> <permissions> <permission name="Write"> <group>Everyone</group> </permission> </permissions> </directory> <directory extends="template-vocabulary" name="language"> <dataFile>directories/language.csv</dataFile> </directory> <directory extends="template-vocabulary" name="nature"> <dataFile>directories/nature.csv</dataFile> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="tenants"> <schema>tenant</schema> <idField>id</idField> <entryCacheName>tenants-cache</entryCacheName> <entryCacheWithoutReferencesName>tenants-cache-without-ref</entryCacheWithoutReferencesName> </directory> <directory extends="template-directory" name="topic"> <schema>multitenantvocabulary</schema> <idField>id</idField> <dataFile>directories/topic.csv</dataFile> <entryCacheName>topic-cache</entryCacheName> <entryCacheWithoutReferencesName>topic-cache-without-ref</entryCacheWithoutReferencesName> <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint"> <property name="targetDirectory">subtopic</property> <property name="targetDirectoryField">parent</property> </deleteConstraint> </directory> <directory extends="template-directory" name="subtopic"> <schema>multitenantxvocabulary</schema> <idField>id</idField> <parentDirectory>topic</parentDirectory> <dataFile>directories/subtopic.csv</dataFile> <entryCacheName>subtopic-cache</entryCacheName> <entryCacheWithoutReferencesName>subtopic-cache-without-ref</entryCacheWithoutReferencesName> </directory> <directory extends="template-directory" name="l10nsubjects"> <schema>multitenantl10nxvocabulary</schema> <idField>id</idField> <parentDirectory>l10nsubjects</parentDirectory> <dataFile>directories/l10nsubjects.csv</dataFile> <entryCacheName>l10nsubjects-cache</entryCacheName> <entryCacheWithoutReferencesName>l10nsubjects-cache-without-ref</entryCacheWithoutReferencesName> <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint"> <property name="targetDirectory">l10nsubjects</property> <property name="targetDirectoryField">parent</property> </deleteConstraint> </directory> <directory extends="template-directory" name="l10ncoverage"> <schema>multitenantl10nxvocabulary</schema> <idField>id</idField> <parentDirectory>l10ncoverage</parentDirectory> <dataFile>directories/l10ncoverage.csv</dataFile> <entryCacheName>l10ncoverage-cache</entryCacheName> <entryCacheWithoutReferencesName>l10ncoverage-cache-without-ref</entryCacheWithoutReferencesName> <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint"> <property name="targetDirectory">l10ncoverage</property> <property name="targetDirectoryField">parent</property> </deleteConstraint> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="shibbGroup"> <schema>shibbolethGroup</schema> <idField>groupName</idField> <types> <type>system</type> </types> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="authTokens"> <schema>authtoken</schema> <idField>token</idField> <table>auth_tokens</table> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>__Nobody__</group> </permission> </permissions> <!-- Set cache to 5 minutes --> <cacheTimeout>300</cacheTimeout> <cacheMaxSize>1000</cacheMaxSize> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="oauth2ServiceProviders"> <schema>oauth2ServiceProvider</schema> <idField>id</idField> <autoincrementIdField>true</autoincrementIdField> <substringMatchType>subfinal</substringMatchType> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>___Nobody___</group> </permission> </permissions> </directory> <directory extends="template-directory" name="oauth2Tokens"> <schema>oauth2Token</schema> <idField>id</idField> <autoincrementIdField>true</autoincrementIdField> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>__Nobody__</group> </permission> </permissions> </directory> <directory extends="template-directory" name="oauth2Clients"> <schema>oauth2Client</schema> <idField>id</idField> <autoincrementIdField>true</autoincrementIdField> <dataFile>directories/oauth2clients.csv</dataFile> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>__Nobody__</group> </permission> </permissions> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="oauthConsumers"> <schema>oauthConsumer</schema> <idField>consumerKey</idField> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>__Nobody__</group> </permission> </permissions> </directory> <directory extends="template-directory" name="oauthServiceProviders"> <schema>oauthServiceProvider</schema> <idField>id</idField> <autoincrementIdField>true</autoincrementIdField> <substringMatchType>subfinal</substringMatchType> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>__Nobody__</group> </permission> </permissions> </directory> <directory extends="template-directory" name="oauthTokens"> <schema>oauthToken</schema> <idField>token</idField> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>__Nobody__</group> </permission> </permissions> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="predicates"> <schema>vocabulary</schema> <idField>id</idField> <table>relation_predicates</table> <dataFile>directories/relation_predicates.csv</dataFile> </directory> <directory extends="template-directory" name="inverse_predicates"> <schema>vocabulary</schema> <idField>id</idField> <table>relation_inverse_predicates</table> <dataFile>directories/relation_inverse_predicates.csv</dataFile> </directory> </extension>
-
<?xml version='1.0' encoding='UTF-8'?> <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="certificate"> <schema>cert</schema> <idField>userid</idField> <passwordField>keypassword</passwordField> <passwordHashAlgorithm>SSHA</passwordHashAlgorithm> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>__Nobody__</group> </permission> </permissions> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-vocabulary" name="RetentionEnd"> <dataFile>directories/retention_end.csv</dataFile> </directory> <directory extends="template-vocabulary" name="RetentionEvent"> <dataFile>directories/retention_event.csv</dataFile> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-vocabulary" name="execution_type"> <table>ecp-note-type</table> <dataFile>directories/execution_type.csv</dataFile> <types> <type>system</type> </types> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-vocabulary" name="WorkflowType"> <autoincrementIdField>false</autoincrementIdField> <createTablePolicy>on_missing_columns</createTablePolicy> <table>studio_vocabulary_WorkflowType</table> <dataFile>data/vocabularies/WorkflowType.csv</dataFile> <cacheEntryName>vocab-WorkflowType-cache</cacheEntryName> <cacheEntryWithoutReferencesName>vocab-WorkflowType-cache-without-references</cacheEntryWithoutReferencesName> </directory> </extension>
-
<extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory"> <directory extends="template-directory" name="jwt_keystore"> <schema>jwt_keystore</schema> <idField>id</idField> <autoincrementIdField>true</autoincrementIdField> <types> <type>system</type> </types> <permissions> <permission name="Read"> <group>__Nobody__</group> </permission> </permissions> </directory> </extension>